QString Class 您所在的位置:网站首页 qt append方法 QString Class

QString Class

#QString Class | 来源: 网络整理| 查看: 265

QString Class

The QString class provides a Unicode character string. More...

Header: #include CMake: find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) qmake: QT += core List of all members, including inherited members Deprecated members QString is part of Implicitly Shared Classes and Classes for String Data.

Note: All functions in this class are reentrant.

Public Types ConstIterator Iterator enum NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC } enum SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps } flags SectionFlags const_iterator const_pointer const_reference const_reverse_iterator difference_type iterator pointer reference reverse_iterator size_type value_type Public Functions QString() QString(const QChar *unicode, qsizetype size = -1) QString(QChar ch) QString(qsizetype size, QChar ch) QString(QLatin1StringView str) (since 6.1) QString(const char8_t *str) QString(const char *str) QString(const QByteArray &ba) QString(const QString &other) QString(QString &&other) ~QString() QString &append(const QString &str) QString &append(QChar ch) QString &append(const QChar *str, qsizetype len) (since 6.0) QString &append(QStringView v) QString &append(QLatin1StringView str) (since 6.5) QString &append(QUtf8StringView str) QString &append(const char *str) QString &append(const QByteArray &ba) QString arg(const QString &a, int fieldWidth = 0, QChar fillChar = u' ') const QString arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const QString arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const QString arg(char a, int fieldWidth = 0, QChar fillChar = u' ') const QString arg(QChar a, int fieldWidth = 0, QChar fillChar = u' ') const QString arg(QStringView a, int fieldWidth = 0, QChar fillChar = u' ') const QString arg(QLatin1StringView a, int fieldWidth = 0, QChar fillChar = u' ') const QString arg(Args &&... args) const (since 6.6) QString &assign(QAnyStringView v) (since 6.6) QString &assign(qsizetype n, QChar c) (since 6.6) QString &assign(InputIterator first, InputIterator last) const QChar at(qsizetype position) const QChar back() const QChar &back() QString::iterator begin() QString::const_iterator begin() const qsizetype capacity() const QString::const_iterator cbegin() const QString::const_iterator cend() const void chop(qsizetype n) QString chopped(qsizetype len) const & QString chopped(qsizetype len) && void clear() int compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const int compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const int compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const int compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const QString::const_iterator constBegin() const const QChar *constData() const QString::const_iterator constEnd() const bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const qsizetype count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const (since 6.0) qsizetype count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype count(const QRegularExpression &re) const QString::const_reverse_iterator crbegin() const QString::const_reverse_iterator crend() const QChar *data() const QChar *data() const QString::iterator end() QString::const_iterator end() const bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const (since 6.1) QString::iterator erase(QString::const_iterator first, QString::const_iterator last) (since 6.5) QString::iterator erase(QString::const_iterator it) QString &fill(QChar ch, qsizetype size = -1) (since 6.0) QString first(qsizetype n) const & (since 6.0) QString first(qsizetype n) && QChar front() const QChar &front() qsizetype indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const QString &insert(qsizetype position, const QString &str) QString &insert(qsizetype position, QChar ch) QString &insert(qsizetype position, const QChar *unicode, qsizetype size) (since 6.0) QString &insert(qsizetype position, QStringView str) QString &insert(qsizetype position, QLatin1StringView str) (since 6.5) QString &insert(qsizetype position, QUtf8StringView str) QString &insert(qsizetype position, const char *str) QString &insert(qsizetype position, const QByteArray &str) bool isEmpty() const bool isLower() const bool isNull() const bool isRightToLeft() const bool isUpper() const bool isValidUtf16() const (since 6.0) QString last(qsizetype n) const & (since 6.0) QString last(qsizetype n) && qsizetype lastIndexOf(const QString &str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const (since 6.3) qsizetype lastIndexOf(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const (since 6.2) qsizetype lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const (since 6.2) qsizetype lastIndexOf(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const (since 6.2) qsizetype lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const qsizetype lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const (since 6.2) qsizetype lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const qsizetype lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const QString left(qsizetype n) const & QString left(qsizetype n) && QString leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const qsizetype length() const int localeAwareCompare(const QString &other) const (since 6.0) int localeAwareCompare(QStringView other) const QString mid(qsizetype position, qsizetype n = -1) const & QString mid(qsizetype position, qsizetype n = -1) && QString normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const QString &prepend(const QString &str) QString &prepend(QChar ch) QString &prepend(const QChar *str, qsizetype len) (since 6.0) QString &prepend(QStringView str) QString &prepend(QLatin1StringView str) (since 6.5) QString &prepend(QUtf8StringView str) QString &prepend(const char *str) QString &prepend(const QByteArray &ba) void push_back(const QString &other) void push_back(QChar ch) void push_front(const QString &other) void push_front(QChar ch) QString::reverse_iterator rbegin() QString::const_reverse_iterator rbegin() const QString &remove(qsizetype position, qsizetype n) QString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &remove(const QRegularExpression &re) (since 6.5) QString &removeAt(qsizetype pos) (since 6.5) QString &removeFirst() (since 6.1) QString &removeIf(Predicate pred) (since 6.5) QString &removeLast() QString::reverse_iterator rend() QString::const_reverse_iterator rend() const QString repeated(qsizetype times) const QString &replace(qsizetype position, qsizetype n, const QString &after) QString &replace(qsizetype position, qsizetype n, QChar after) QString &replace(qsizetype position, qsizetype n, const QChar *after, qsizetype alen) QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(const QChar *before, qsizetype blen, const QChar *after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(QLatin1StringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString &replace(const QRegularExpression &re, const QString &after) void reserve(qsizetype size) void resize(qsizetype size) void resize(qsizetype newSize, QChar fillChar) QString right(qsizetype n) const & QString right(qsizetype n) && QString rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const QString section(QChar sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const QString section(const QString &sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const QString section(const QRegularExpression &re, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const QString &setNum(int n, int base = 10) QString &setNum(short n, int base = 10) QString &setNum(ushort n, int base = 10) QString &setNum(uint n, int base = 10) QString &setNum(long n, int base = 10) QString &setNum(ulong n, int base = 10) QString &setNum(qlonglong n, int base = 10) QString &setNum(qulonglong n, int base = 10) QString &setNum(float n, char format = 'g', int precision = 6) QString &setNum(double n, char format = 'g', int precision = 6) QString &setRawData(const QChar *unicode, qsizetype size) QString &setUnicode(const QChar *unicode, qsizetype size) QString &setUtf16(const ushort *unicode, qsizetype size) void shrink_to_fit() QString simplified() const qsizetype size() const (since 6.0) QString sliced(qsizetype pos, qsizetype n) const & (since 6.0) QString sliced(qsizetype pos) const & (since 6.0) QString sliced(qsizetype pos) && (since 6.0) QString sliced(qsizetype pos, qsizetype n) && QStringList split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const QStringList split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const QStringList split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const void squeeze() bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const void swap(QString &other) CFStringRef toCFString() const QString toCaseFolded() const double toDouble(bool *ok = nullptr) const (since 6.6) emscripten::val toEcmaString() const float toFloat(bool *ok = nullptr) const QString toHtmlEscaped() const int toInt(bool *ok = nullptr, int base = 10) const QByteArray toLatin1() const QByteArray toLocal8Bit() const long toLong(bool *ok = nullptr, int base = 10) const qlonglong toLongLong(bool *ok = nullptr, int base = 10) const QString toLower() const NSString *toNSString() const short toShort(bool *ok = nullptr, int base = 10) const std::string toStdString() const std::u16string toStdU16String() const std::u32string toStdU32String() const std::wstring toStdWString() const uint toUInt(bool *ok = nullptr, int base = 10) const ulong toULong(bool *ok = nullptr, int base = 10) const qulonglong toULongLong(bool *ok = nullptr, int base = 10) const ushort toUShort(bool *ok = nullptr, int base = 10) const QList toUcs4() const QString toUpper() const QByteArray toUtf8() const qsizetype toWCharArray(wchar_t *array) const (since 6.0) decltype(qTokenize(*this, std::forward(needle), flags...)) tokenize(Needle &&sep, Flags... flags) const & (since 6.0) decltype(qTokenize(std::move(*this), std::forward(needle), flags...)) tokenize(Needle &&sep, Flags... flags) const && (since 6.0) decltype(qTokenize(std::move(*this), std::forward(needle), flags...)) tokenize(Needle &&sep, Flags... flags) && QString trimmed() const void truncate(qsizetype position) const QChar *unicode() const const ushort *utf16() const (since 6.7) std::u16string_view operator std::u16string_view() const bool operator!=(const char *other) const bool operator!=(const QByteArray &other) const QString &operator+=(const QString &other) QString &operator+=(QChar ch) (since 6.0) QString &operator+=(QStringView str) QString &operator+=(QLatin1StringView str) (since 6.5) QString &operator+=(QUtf8StringView str) QString &operator+=(const char *str) QString &operator+=(const QByteArray &ba) bool operator=(const QByteArray &other) const QChar &operator[](qsizetype position) const QChar operator[](qsizetype position) const Static Public Members QString asprintf(const char *cformat, ...) int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) int compare(const QString &s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) int compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) int compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) int compare(QStringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) QString fromCFString(CFStringRef string) (since 6.6) QString fromEcmaString(emscripten::val jsString) QString fromLatin1(const char *str, qsizetype size) (since 6.0) QString fromLatin1(QByteArrayView str) QString fromLatin1(const QByteArray &str) QString fromLocal8Bit(const char *str, qsizetype size) (since 6.0) QString fromLocal8Bit(QByteArrayView str) QString fromLocal8Bit(const QByteArray &str) QString fromNSString(const NSString *string) QString fromRawData(const QChar *unicode, qsizetype size) QString fromStdString(const std::string &str) QString fromStdU16String(const std::u16string &str) QString fromStdU32String(const std::u32string &str) QString fromStdWString(const std::wstring &str) QString fromUcs4(const char32_t *unicode, qsizetype size = -1) QString fromUtf8(const char *str, qsizetype size) (since 6.0) QString fromUtf8(QByteArrayView str) QString fromUtf8(const QByteArray &str) (since 6.1) QString fromUtf8(const char8_t *str) (since 6.0) QString fromUtf8(const char8_t *str, qsizetype size) QString fromUtf16(const char16_t *unicode, qsizetype size = -1) QString fromWCharArray(const wchar_t *string, qsizetype size = -1) int localeAwareCompare(const QString &s1, const QString &s2) (since 6.0) int localeAwareCompare(QStringView s1, QStringView s2) QString number(long n, int base = 10) QString number(int n, int base = 10) QString number(uint n, int base = 10) QString number(ulong n, int base = 10) QString number(qlonglong n, int base = 10) QString number(qulonglong n, int base = 10) QString number(double n, char format = 'g', int precision = 6) QString vasprintf(const char *cformat, va_list ap) Related Non-Members (since 6.1) qsizetype erase(QString &s, const T &t) (since 6.1) qsizetype erase_if(QString &s, Predicate pred) bool operator!=(const QString &s1, const QString &s2) bool operator!=(const QString &s1, QLatin1StringView s2) bool operator!=(const char *s1, const QString &s2) (since 6.4) QString operator""_s(const char16_t *str, size_t size) QString operator+(const QString &s1, const QString &s2) QString operator+(QString &&s1, const QString &s2) QString operator+(const QString &s1, const char *s2) QString operator+(const char *s1, const QString &s2) bool operator(QDataStream &stream, QString &string) Macros QStringLiteral(str) QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII QT_RESTRICTED_CAST_FROM_ASCII const char *qPrintable(const QString &str) const wchar_t *qUtf16Printable(const QString &str) const char *qUtf8Printable(const QString &str) Detailed Description

QString stores a string of 16-bit QChars, where each QChar corresponds to one UTF-16 code unit. (Unicode characters with code values above 65535 are stored using surrogate pairs, that is, two consecutive QChars.)

Unicode is an international standard that supports most of the writing systems in use today. It is a superset of US-ASCII (ANSI X3.4-1986) and Latin-1 (ISO 8859-1), and all the US-ASCII/Latin-1 characters are available at the same code positions.

Behind the scenes, QString uses implicit sharing (copy-on-write) to reduce memory usage and to avoid the needless copying of data. This also helps reduce the inherent overhead of storing 16-bit characters instead of 8-bit characters.

In addition to QString, Qt also provides the QByteArray class to store raw bytes and traditional 8-bit '\0'-terminated strings. For most purposes, QString is the class you want to use. It is used throughout the Qt API, and the Unicode support ensures that your applications are easy to translate if you want to expand your application's market at some point. Two prominent cases where QByteArray is appropriate are when you need to store raw binary data, and when memory conservation is critical (like in embedded systems).

Initializing a string

One way to initialize a QString is to pass a const char * to its constructor. For example, the following code creates a QString of size 5 containing the data "Hello":

QString str = "Hello";

QString converts the const char * data into Unicode using the fromUtf8() function.

In all of the QString functions that take const char * parameters, the const char * is interpreted as a classic C-style '\\0'-terminated string. Except where the function's name overtly indicates some other encoding, such const char * parameters are assumed to be encoded in UTF-8.

You can also provide string data as an array of QChars:

static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 }; QString str(data, 4);

QString makes a deep copy of the QChar data, so you can modify it later without experiencing side effects. You can avoid taking a deep copy of the character data by using QStringView or QString::fromRawData() instead.

Another approach is to set the size of the string using resize() and to initialize the data character per character. QString uses 0-based indexes, just like C++ arrays. To access the character at a particular index position, you can use operator[](). On non-const strings, operator[]() returns a reference to a character that can be used on the left side of an assignment. For example:

QString str; str.resize(4); str[0] = QChar('U'); str[1] = QChar('n'); str[2] = QChar(0x10e3); str[3] = QChar(0x03a3);

For read-only access, an alternative syntax is to use the at() function:

QString str; for (qsizetype i = 0; i = QChar('a') && str.at(i)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有